package edu.asselvi.seguros.menu;

import java.io.BufferedReader;
import java.io.IOException;

import edu.asselvi.seguros.controle.ControleCidade;
import edu.asselvi.seguros.controle.ControleCliente;
import edu.asselvi.seguros.controle.ControleCorretor;
import edu.asselvi.seguros.controle.ControleEstado;
import edu.asselvi.seguros.controle.ControleMarca;
import edu.asselvi.seguros.controle.ControleModelo;
import edu.asselvi.seguros.controle.ControleSeguradora;
import edu.asselvi.seguros.controle.ControleTipoItem;
import edu.asselvi.seguros.exception.ESegurosErrosGeral;

public class MenuCadastros {

	BufferedReader in = null;
	char opcao = '0';
	
	
	public MenuCadastros(BufferedReader br) {		
		this.in = br;
	}

	public void carrega() {

		/* ******************************************************
		 *               MENU CADASTROS
		 *******************************************************/

		boolean exit = false;
		do {
			System.out.println(" -- MENU CADASTROS--\n");
			System.out.println("[1] CLIENTES");
			System.out.println("[2] CORRETORES");
			System.out.println("[3] SEGURADORAS");
			System.out.println("[4] TIPOS DE SEGUROS");
			System.out.println("[5] MARCAS");
			System.out.println("[6] MODELOS");
			System.out.println("[7] ESTADOS");
			System.out.println("[8] CIDADES");
			System.out.println("\n[0] VOLTAR");

			try {
				opcao = in.readLine().charAt(0);
			} catch (IOException e) {
				//se acontecer um erro aqui o programa entra em loop infinito
				System.err.println(ESegurosErrosGeral.ERRO_TECLADO);
				System.exit(-1); //termina o programa imediatamente
			}

			switch (opcao) {
			case '1': new ControleCliente(in).cadastrar(); break;
			case '2': new ControleCorretor(in).cadastrar(); break;
			case '3': new ControleSeguradora(in).cadastrar(); break;
			case '4': new ControleTipoItem(in).cadastrar(); break;
			case '5': new ControleMarca(in).cadastrar(); break;
			case '6': new ControleModelo(in).cadastrar(); break;
			case '7': new ControleEstado(in).cadastrar(); break;
			case '8': new ControleCidade(in).cadastrar(); break;
			
			case '0':	exit = true; break; //volta para o menu principal
			default: System.out.println("OPCAO INVALIDA");
			}
		} while (!exit) ;
	}	
}
